export function emailVailtor (val) {
  const reg = /^([a-zA-Z\d])(\w|-)+@[a-zA-Z\d]+\.[a-zA-Z]{2,4}$/
  if (reg.test(val)) {
    return true
  }
  return false
}

export function specialCharVaildator (val) {
  const reg = /[`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]·~！@#￥%……&*（）——\-+={}|《》？：“”【】、；‘'，。、 ]/ig
  let res = ''
  res = val.replace(reg, '')
  return res
}

export function passwordValidator (val) {
  const reg = /^(?!\D+$)(?![^a-zA-Z]+$)\S{6,20}$/
  return reg.test(val)
}
// 策略者模式
export const validator = {
  valid (val, config) {
    let flag = true
    for (const key in config) {
      if (this[key](val) !== config[key]) {
        flag = false
        break
      }
    }
    return flag
  },
  isEmpty (val) {
    if (val instanceof Object) {
      if (Object.keys(val).length === 0) {
        return true
      } else {
        // 不是空
        return false
      }
    } else if (val === '' || val === null) {
      return true
    } else {
      // 不是空
      return false
    }
  },
  isNum (val) {
    if (typeof val === 'number') {
      return true
    }
    return false
  }
}
